package ae.pcfc.etks.online.web.model;

import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import ae.pcfc.etks.online.common.vo.UploadDocumentVO;
import ae.pcfc.etks.online.web.common.Constants;

public class NonClientCompanyRegistrationLicenseInfo extends BaseModel {

	@NotNull
	List<Integer> iClientRole;
	
	@NotEmpty
	String strCategory;
	
	@NotEmpty
	@Size(max = 50)
	String strCompNameEng = "";

	@NotEmpty
	@Size(max = 50)
	String strCompNameArab = "";
	
	@NotEmpty
	String strLicenseIssuingAuth;

	@NotEmpty
	@Size(max = 20)
	String strLicenseNumber;
	
	String  strLicenseType;
	
	@DateTimeFormat(pattern="dd/MM/yyyy") 
	Date strLicenseIssueDate;
	
	@DateTimeFormat(pattern="dd/MM/yyyy") 
	Date strLicenseExpiryDate;

	@NotEmpty
	@Size(max = 100)
	String strAddressEng = "";

	@NotEmpty
	@Size(max = 100)
	String strAddressArb = "";

	@NotEmpty
	@Size(max = 20)
	String strPObox;

	@NotEmpty
	@Size(max = 10)
	String strPOBoxLoc;
	
	@NotEmpty
	String strCountry;

	@NotEmpty
	String strCity;
	
	//NOT USED
	String strTelNo;

	@NotEmpty
	@Pattern(regexp = Constants.TEL_REGEXP)
	String strOfficeNo;

	@NotEmpty
	@Pattern(regexp = Constants.TEL_REGEXP)
	String strFaxNo;

	@Pattern(regexp = Constants.URL_REGEXP)
	String strWebsiteURL;

	@NotEmpty
	@Pattern(regexp = Constants.MAIL_REGEXP)
	String strEmailAddress = "";
	
	List<UploadDocumentVO> arrDocumentVOs;
	
	String strLicenseCopyName;
	
	
	String strLicenseCopyURL;
	
	String strMgrPassportCopyName;
	
	
	String strMgrPassportCopyURL;
	
	String name;

	@NotEmpty
	List<CommonsMultipartFile> files;
	
	String strUploadURL;
	
	String strClientCategoryDisplay;
	
	String strUploadDocumentType;
	
    String strCountryDisplay;
    
    String strCityDisplay;
    
    String strClientRoleDisplay;
    
    String strLicenseTypeDisplay;
    
    String strLicenseIssueAuthDisplay;
    
    String hiddenCityVal;
	/**
	 * @return the strCategory
	 */
	public String getStrCategory() {
		return strCategory;
	}

	/**
	 * @param strCategory the strCategory to set
	 */
	public void setStrCategory(String strCategory) {
		this.strCategory = strCategory;
	}

	/**
	 * @return the strLicenseIssueAuthDisplay
	 */
	public String getStrLicenseIssueAuthDisplay() {
		return strLicenseIssueAuthDisplay;
	}

	/**
	 * @param strLicenseIssueAuthDisplay the strLicenseIssueAuthDisplay to set
	 */
	public void setStrLicenseIssueAuthDisplay(String strLicenseIssueAuthDisplay) {
		this.strLicenseIssueAuthDisplay = strLicenseIssueAuthDisplay;
	}

	/**
	 * @return the strCityDisplay
	 */
	public String getStrCityDisplay() {
		return strCityDisplay;
	}

	/**
	 * @param strCityDisplay the strCityDisplay to set
	 */
	public void setStrCityDisplay(String strCityDisplay) {
		this.strCityDisplay = strCityDisplay;
	}

	/**
	 * @return the strClientRoleDisplay
	 */
	public String getStrClientRoleDisplay() {
		return strClientRoleDisplay;
	}

	/**
	 * @param strClientRoleDisplay the strClientRoleDisplay to set
	 */
	public void setStrClientRoleDisplay(String strClientRoleDisplay) {
		this.strClientRoleDisplay = strClientRoleDisplay;
	}

	/**
	 * @return the strLicenseTypeDisplay
	 */
	public String getStrLicenseTypeDisplay() {
		return strLicenseTypeDisplay;
	}

	/**
	 * @param strLicenseTypeDisplay the strLicenseTypeDisplay to set
	 */
	public void setStrLicenseTypeDisplay(String strLicenseTypeDisplay) {
		this.strLicenseTypeDisplay = strLicenseTypeDisplay;
	}

	/**
	 * @return the strCountryDisplay
	 */
	public String getStrCountryDisplay() {
		return strCountryDisplay;
	}

	/**
	 * @param strCountryDisplay the strCountryDisplay to set
	 */
	public void setStrCountryDisplay(String strCountryDisplay) {
		this.strCountryDisplay = strCountryDisplay;
	}

	/**
	 * @return the iClientRole
	 */
	public List<Integer> getiClientRole() {
		return iClientRole;
	}

	/**
	 * @param iClientRole the iClientRole to set
	 */
	public void setiClientRole(List<Integer> iClientRole) {
		this.iClientRole = iClientRole;
	}

	/**
	 * @return the strCompNameEng
	 */
	public String getStrCompNameEng() {
		return strCompNameEng;
	}

	/**
	 * @param strCompNameEng
	 *            the strCompNameEng to set
	 */
	public void setStrCompNameEng(String strCompNameEng) {
		this.strCompNameEng = strCompNameEng;
	}

	/**
	 * @return the strCompNameArab
	 */
	public String getStrCompNameArab() {
		return strCompNameArab;
	}

	/**
	 * @param strCompNameArab
	 *            the strCompNameArab to set
	 */
	public void setStrCompNameArab(String strCompNameArab) {
		this.strCompNameArab = strCompNameArab;
	}

	/**
	 * @return the strLicenseIssuingAuth
	 */
	public String getStrLicenseIssuingAuth() {
		return strLicenseIssuingAuth;
	}

	

	/**
	 * @param strLicenseIssuingAuth
	 *            the strLicenseIssuingAuth to set
	 */
	public void setStrLicenseIssuingAuth(String strLicenseIssuingAuth) {
		this.strLicenseIssuingAuth = strLicenseIssuingAuth;
	}

	/**
	 * @return the strLicenseNumber
	 */
	public String getStrLicenseNumber() {
		return strLicenseNumber;
	}

	/**
	 * @param strLicenseNumber
	 *            the strLicenseNumber to set
	 */
	public void setStrLicenseNumber(String strLicenseNumber) {
		this.strLicenseNumber = strLicenseNumber;
	}


	/**
	 * @return the strLicenseType
	 */
	public String getStrLicenseType() {
		return strLicenseType;
	}

	/**
	 * @param strLicenseType
	 *            the strLicenseType to set
	 */
	public void setStrLicenseType(String strLicenseType) {
		this.strLicenseType = strLicenseType;
	}

	/**
	 * @return the strLicenseIssueDate
	 */
	public Date getStrLicenseIssueDate() {
		return strLicenseIssueDate;
	}

	/**
	 * @param strLicenseIssueDate
	 *            the strLicenseIssueDate to set
	 */
	public void setStrLicenseIssueDate(Date strLicenseIssueDate) {
		this.strLicenseIssueDate = strLicenseIssueDate;
	}

	/**
	 * @return the strLicenseExpiryDate
	 */
	public Date getStrLicenseExpiryDate() {
		return strLicenseExpiryDate;
	}

	/**
	 * @param strLicenseExpiryDate
	 *            the strLicenseExpiryDate to set
	 */
	public void setStrLicenseExpiryDate(Date strLicenseExpiryDate) {
		this.strLicenseExpiryDate = strLicenseExpiryDate;
	}

	/**
	 * @return the strAddressEng
	 */
	public String getStrAddressEng() {
		return strAddressEng;
	}

	/**
	 * @param strAddressEng
	 *            the strAddressEng to set
	 */
	public void setStrAddressEng(String strAddressEng) {
		this.strAddressEng = strAddressEng;
	}

	/**
	 * @return the strAddressArb
	 */
	public String getStrAddressArb() {
		return strAddressArb;
	}

	/**
	 * @param strAddressArb
	 *            the strAddressArb to set
	 */
	public void setStrAddressArb(String strAddressArb) {
		this.strAddressArb = strAddressArb;
	}

	/**
	 * @return the strPObox
	 */
	public String getStrPObox() {
		return strPObox;
	}

	/**
	 * @param strPObox
	 *            the strPObox to set
	 */
	public void setStrPObox(String strPObox) {
		this.strPObox = strPObox;
	}

	/**
	 * @return the strPOBoxLoc
	 */
	public String getStrPOBoxLoc() {
		return strPOBoxLoc;
	}

	/**
	 * @param strPOBoxLoc
	 *            the strPOBoxLoc to set
	 */
	public void setStrPOBoxLoc(String strPOBoxLoc) {
		this.strPOBoxLoc = strPOBoxLoc;
	}	

	


	/**
	 * @return the strCountry
	 */
	public String getStrCountry() {
		return strCountry;
	}

	/**
	 * @param strCountry the strCountry to set
	 */
	public void setStrCountry(String strCountry) {
		this.strCountry = strCountry;
	}

	/**
	 * @return the strCity
	 */
	public String getStrCity() {
		return strCity;
	}

	/**
	 * @param strCity the strCity to set
	 */
	public void setStrCity(String strCity) {
		this.strCity = strCity;
	}

	/**
	 * @return the strTelNo
	 */
	public String getStrTelNo() {
		return strTelNo;
	}

	/**
	 * @param strTelNo
	 *            the strTelNo to set
	 */
	public void setStrTelNo(String strTelNo) {
		this.strTelNo = strTelNo;
	}

	/**
	 * @return the strOfficeNo
	 */
	public String getStrOfficeNo() {
		return strOfficeNo;
	}

	/**
	 * @param strOfficeNo
	 *            the strOfficeNo to set
	 */
	public void setStrOfficeNo(String strOfficeNo) {
		this.strOfficeNo = strOfficeNo;
	}

	/**
	 * @return the strFaxNo
	 */
	public String getStrFaxNo() {
		return strFaxNo;
	}

	/**
	 * @param strFaxNo
	 *            the strFaxNo to set
	 */
	public void setStrFaxNo(String strFaxNo) {
		this.strFaxNo = strFaxNo;
	}

	/**
	 * @return the strWebsiteURL
	 */
	public String getStrWebsiteURL() {
		return strWebsiteURL;
	}

	/**
	 * @param strWebsiteURL
	 *            the strWebsiteURL to set
	 */
	public void setStrWebsiteURL(String strWebsiteURL) {
		this.strWebsiteURL = strWebsiteURL;
	}

	/**
	 * @return the strEmailAddress
	 */
	public String getStrEmailAddress() {
		return strEmailAddress;
	}

	/**
	 * @param strEmailAddress
	 *            the strEmailAddress to set
	 */
	public void setStrEmailAddress(String strEmailAddress) {
		this.strEmailAddress = strEmailAddress;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the files
	 */
	public List<CommonsMultipartFile> getFiles() {
		return files;
	}

	/**
	 * @param files the files to set
	 */
	public void setFiles(List<CommonsMultipartFile> files) {
		this.files = files;
	}

	/**
	 * @return the strUploadURL
	 */
	public String getStrUploadURL() {
		return strUploadURL;
	}

	/**
	 * @param strUploadURL the strUploadURL to set
	 */
	public void setStrUploadURL(String strUploadURL) {
		this.strUploadURL = strUploadURL;
	}

	/**
	 * @return the strUploadDocumentType
	 */
	public String getStrUploadDocumentType() {
		return strUploadDocumentType;
	}

	/**
	 * @param strUploadDocumentType the strUploadDocumentType to set
	 */
	public void setStrUploadDocumentType(String strUploadDocumentType) {
		this.strUploadDocumentType = strUploadDocumentType;
	}

	

	/**
	 * @return the arrDocumentVOs
	 */
	public List<UploadDocumentVO> getArrDocumentVOs() {
		return arrDocumentVOs;
	}

	/**
	 * @param arrDocumentVOs the arrDocumentVOs to set
	 */
	public void setArrDocumentVOs(List<UploadDocumentVO> arrDocumentVOs) {
		this.arrDocumentVOs = arrDocumentVOs;
	}
	
	/**
	 * @return the strClientCategoryDisplay
	 */
	public String getStrClientCategoryDisplay() {
		return strClientCategoryDisplay;
	}

	/**
	 * @param strClientCategoryDisplay the strClientCategoryDisplay to set
	 */
	public void setStrClientCategoryDisplay(String strClientCategoryDisplay) {
		this.strClientCategoryDisplay = strClientCategoryDisplay;
	}

	/**
	 * @return the strLicenseCopyName
	 */
	public String getStrLicenseCopyName() {
		return strLicenseCopyName;
	}

	/**
	 * @param strLicenseCopyName the strLicenseCopyName to set
	 */
	public void setStrLicenseCopyName(String strLicenseCopyName) {
		this.strLicenseCopyName = strLicenseCopyName;
	}

	/**
	 * @return the strLicenseCopyURL
	 */
	public String getStrLicenseCopyURL() {
		return strLicenseCopyURL;
	}

	/**
	 * @param strLicenseCopyURL the strLicenseCopyURL to set
	 */
	public void setStrLicenseCopyURL(String strLicenseCopyURL) {
		this.strLicenseCopyURL = strLicenseCopyURL;
	}

	/**
	 * @return the strMgrPassportCopyName
	 */
	public String getStrMgrPassportCopyName() {
		return strMgrPassportCopyName;
	}

	/**
	 * @param strMgrPassportCopyName the strMgrPassportCopyName to set
	 */
	public void setStrMgrPassportCopyName(String strMgrPassportCopyName) {
		this.strMgrPassportCopyName = strMgrPassportCopyName;
	}

	/**
	 * @return the strMgrPassportCopyURL
	 */
	public String getStrMgrPassportCopyURL() {
		return strMgrPassportCopyURL;
	}

	/**
	 * @param strMgrPassportCopyURL the strMgrPassportCopyURL to set
	 */
	public void setStrMgrPassportCopyURL(String strMgrPassportCopyURL) {
		this.strMgrPassportCopyURL = strMgrPassportCopyURL;
	}

	/**
	 * @return the hiddenCityVal
	 */
	public String getHiddenCityVal() {
		return hiddenCityVal;
	}

	/**
	 * @param hiddenCityVal the hiddenCityVal to set
	 */
	public void setHiddenCityVal(String hiddenCityVal) {
		this.hiddenCityVal = hiddenCityVal;
	}

}
